package ar.uba.fi.algo3.algoTank.model.interfaces;

import ar.uba.fi.algo3.algoTank.model.Objeto;
import ar.uba.fi.algo3.algoTank.model.armas.Arma;
import ar.uba.fi.algo3.algoTank.model.bonus.Bonus;
import ar.uba.fi.algo3.algoTank.model.cuarteles.Cuartel;
import ar.uba.fi.algo3.algoTank.model.paredes.Pared;
import ar.uba.fi.algo3.algoTank.model.proyectiles.Proyectil;
import ar.uba.fi.algo3.algoTank.model.tanques.Tanque;
import ar.uba.fi.algo3.algoTank.util.Constantes;

public abstract interface Movible {

	public abstract boolean hayColision(Objeto objeto);

	public abstract boolean hayColision(Cuartel cuartel);

	public abstract boolean hayColision(Pared pared);

	public abstract boolean hayColision(Bonus bonus);

	public abstract boolean hayColision(Tanque tanque);

	public abstract boolean hayColision(Arma arma);

	public abstract boolean hayColision(Proyectil proyectil);

	public abstract void mover(Enum<Constantes.direccion> direccion);
}
